﻿#Region " IDirectoryインターフェイス "
''' <summary>
''' Directory オブジェクトのプロパティを定義します。
''' </summary>
''' <remarks></remarks>
Public Interface IDirectory
  Inherits IDisposable

  ''' <summary>
  ''' 説明を取得または設定します。
  ''' </summary>
  ''' <value></value>
  ''' <returns>説明。</returns>
  ''' <remarks></remarks>
  Property Description As String

  ''' <summary>
  ''' 関連付けられた <see cref="DirectoryEntry"/> を取得します。
  ''' </summary>
  ''' <value></value>
  ''' <returns>関連付けられた <see cref="DirectoryEntry"/>。</returns>
  ''' <remarks></remarks>
  ReadOnly Property Entry As DirectoryEntry

  ''' <summary>
  ''' オブジェクトが破棄されているかどうかを取得します。
  ''' </summary>
  ''' <value></value>
  ''' <returns>オブジェクトが破棄されている場合は <c>True</c>。それ以外の場合は <c>False</c>。</returns>
  ''' <remarks></remarks>
  ReadOnly Property IsDisposed As Boolean

  ''' <summary>
  ''' 名前を取得します。
  ''' </summary>
  ''' <value></value>
  ''' <returns>名前。</returns>
  ''' <remarks></remarks>
  ReadOnly Property Name As String
End Interface
#End Region

#Region " IDomainインターフェイス "
''' <summary>
''' ドメインの Directory オブジェクトのプロパティを定義します。
''' </summary>
''' <remarks></remarks>
Public Interface IDomain
  Inherits IDirectory

  ''' <summary>
  ''' 表示用の所属パスを取得します。
  ''' </summary>
  ''' <value></value>
  ''' <returns>表示用の所属パス。</returns>
  ''' <remarks></remarks>
  ReadOnly Property DisplayPath As String
End Interface
#End Region

#Region " IUserインターフェイス "
''' <summary>
''' User オブジェクトの共通プロパティを定義します。
''' </summary>
''' <remarks></remarks>
Public Interface IUser
  Inherits IDirectory

  ''' <summary>
  ''' アカウントが無効かどうかを取得します。
  ''' </summary>
  ''' <value></value>
  ''' <returns>アカウントが無効の場合は <c>True</c>。それ以外の場合は <c>False</c>。</returns>
  ''' <remarks></remarks>
  Property Disabled As Boolean

  ''' <summary>
  ''' フルネーム・表示名を取得または設定します。
  ''' </summary>
  ''' <value></value>
  ''' <returns>フルネーム・表示名。</returns>
  ''' <remarks></remarks>
  Property FullName As String

  ''' <summary>
  ''' <see cref="Entry"/> の ADSI User オブジェクトを取得します。
  ''' </summary>
  ''' <value></value>
  ''' <returns><see cref="Entry"/> の ADSI User オブジェクト。</returns>
  ''' <remarks></remarks>
  ReadOnly Property Native As IADsUser
End Interface
#End Region

#Region " IGroupインターフェイス "
''' <summary>
''' Group オブジェクトの共通プロパティを定義します。
''' </summary>
''' <remarks></remarks>
Public Interface IGroup
  Inherits IDirectory

  ''' <summary>
  ''' <see cref="Entry"/> の ADSI Group オブジェクトを取得します。
  ''' </summary>
  ''' <value></value>
  ''' <returns><see cref="Entry"/> の ADSI Group オブジェクト。</returns>
  ''' <remarks></remarks>
  ReadOnly Property Native As IADsGroup
End Interface
#End Region
